package com.whu.tcx01.utils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TranProbUtil {
    public static List<Double> calTranProbUtil(List<List<Double>> tempTrackCandDis, List<Double> tempMinDis ,
                                               List<Double> tempTrackPointDis, List<String> tempCoorList){

        List<Double> List = new ArrayList<>();

        int[] flags = new int[tempTrackCandDis.size()];//记录最小距离的位置

        for (int i = 0; i < tempTrackCandDis.size(); i++) {
            if(tempTrackCandDis.get(i).size() > 0) {
                List<Double> tempList = tempTrackCandDis.get(i);

                Double d = Collections.min(tempList);//找到每组距离的最小值
                flags[i] = tempList.indexOf(d);//找到每组最小值对应在List中的位置

                if(d == 0.0) //等于0时无法作分母，给一个小值
                    d += 0.1;
                tempMinDis.add(d);
            }
            else {
                //tempTrackCandDis.get(i).size()=0 即没有候选点
                Double d = 1000000.0;//表示无效
                tempMinDis.add(d);
            }
        }

        //计算轨迹点之间的距离
        tempTrackPointDis = CRUD.getCarDistance(tempCoorList);

        //计算转移概率矩阵
        List = CRUD.getTransmissionP(tempTrackPointDis,tempMinDis);

        return List;
    }
}
